package sis.util;/*
 * @auther 顶风少年
 * @mail dfsn19970313@foxmail.com
 * @date 2019-08-03 10:26
 * @notify
 * @version 1.0
 */

import java.util.*;

//一个key对于多个value的集合
public class MultiHashMap<K, V> {
    //元类型
    private Map<K, List<V>> map = new HashMap<K, List<V>>();

    //获取map的总长度
    public int size() {
        return map.size();
    }

    //添加元素
    public void put(K key, V value) {
        //首先根据key查询value
        List<V> values = map.get(key);
        //如果没有查询到
        if (values == null) {
            //创建一个空的value
            values = new ArrayList<V>();
            //在map中添加
            map.put(key, values);
        }
        //将值添加到 value中
        values.add(value);
    }

    //通过key获取值的列表
    public List<V> get(K key) {
        return map.get(key);
    }

    //获取map的键值对映射
    protected Set<Map.Entry<K, List<V>>> entrySet() {
        return map.entrySet();
    }

}
